package com.hanamaki.demo01;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.net.MalformedURLException;

/**
 * 1.测试 Selenium中 八个 定位元素方式 中的 五个  （xpath、cssSelector、tagName、partialLinkText、linkText）
 */
public class SeleniumTemplate {

    //注册驱动
    /**
     * driver代表浏览器对象
     */
    WebDriver driver;
    @BeforeMethod
    public void setUp() {
        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();
    }


    @Test
    public void test() throws InterruptedException, MalformedURLException {
        /* 打开资源路径的位置 */
        driver.get("file:///C:/Users/edz/Desktop/testhtml/exam/index.html");
        /* 测试  点击 继续提供房源信息
        * 1. 我们需要定位元素
        *   1. 先使用 xpath 方式定位*/
//        driver.findElement(By.xpath("//a[@target]")).click();
        /*  2. 使用 linkText() 来定位元素
        *       使用linkText()来定位元素 的原理为：使用linkText()可以根据网页中实现显示的内容来定位
        *       使用 linkText() 只能精确定位   */
//        driver.findElement(By.linkText("继续提供房源信息")).click();

        /*  3.使用 partialLinkText() 来定位元素
        *      使用 partialLinkText()来定位元素 的原理为：使用 partialLinkText()可以根据网页中实现显示的内容来定位
         *     使用 partialLinkText() 能够模糊查找 但是模糊查找的 数据要连贯 */
//        driver.findElement(By.partialLinkText("继续提供房源信息")).click();

        /*  4. 通过使用  tagName方式 来定位元素  tagName是 元素的标签名  a标签 */
//        driver.findElement(By.tagName("a")).click();

        /*  5. 使用 cssSelector 方式来定位元素  */
        /* xpath 路径的写法*/
//        driver.findElement(By.xpath("//tr/td/a")).click();
        /* cssSelector*/
        driver.findElement(By.cssSelector("tr td a")).click();

    }

    @AfterClass
    public void close() {
//        driver.quit();
    }
}
